// 对某些函数进行扩展 面向切片编程

function say() { // 装饰
  console.log('say')
}
// 在说话之前 去干一些事情， 在说话之前先刷牙
Function.prototype.before = function(callback){ //同意扩展了公共方法
  // let self = this
  // 箭头函数中没有this 没有arguments
  return () => { // newSay 箭头函数中没有this指向  会向上级作用域查找
    callback()
    this() // this指向怎么看 就是谁调用这个方法  this就是谁
  }
}

let newSay = say.before(function() {
  console.log('刷牙')
})
newSay()
